package 注解;

//Java可变参数 又称参数个数可变，用作方法的形参出现，那么方法参数个数就是可变的了。
//
//书写格式：
//
//格式：修饰符 返回值类型 方法名(数据类型... 量名){ }
//
//范例：public static int sum(int... a) { }
//
//可变参数 注意事项：
//
// -这里的可变参数变量其实是一个数组。
//
// -如果一个方法 有多个参数，包含可变参数，可变参数要放在最后。
//
//使用案例

public class 可变参数 {
  public static void main(String[] args) {
    System.out.println(sum1(1, 2, 3)); // 6
    System.out.println(sum2(1, 2)); // 6
    System.out.println(sum3(1, 2, 3)); // 6
  }

  // 正常方法求和
  public static int sum1(int a, int b, int c) {
    return a + b + c;
  }

  // 可变参数求和
  public static int sum2(int... a) {
    int sum = 0;
    for (int i : a) {
      sum += i;
    }
    return sum;
  }

  // 可变参数求和，如果存在可变参数与非可变参数，可变参数需要放到后面，不能放在前面。
  // public static int sum3(int... a, int b) // 错误写法
  public static int sum3(int b, int... a) {
    int sum = 0;
    for (int i : a) {
      sum += i;
    }
    return sum + b;
  }
}
